package fourEightDays;

import java.util.Scanner;

public class Day20 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String p = in.nextLine();
            String s = in.nextLine();
            // 记录长度
            int pLen = p.length();
            int sLen = s.length();
            // 状态表示 dp[i][j] 表示字符串 s 的前 i 个字符和模式 p 的前 j 个字符是否能匹配
            // 创建 dp 表
            boolean[][] dp = new boolean[sLen + 1][pLen + 1];
            // 初始化 dp 表
            dp[0][0] = true;
            for (int j = 0; j < pLen; j ++) {
                if (p.charAt(j) == '*') {
                    dp[0][j + 1] = dp[0][j];
                }
            }
            // 填表
            for (int i = 0; i < sLen; i ++) {
                for (int j = 0; j < pLen; j ++) {
                    if (p.charAt(j) == '*') {
                        dp[i + 1][j + 1] = dp[i][j + 1] || dp[i + 1][j];
                    } else if (p.charAt(j) == '?'
                            || (p.charAt(j) == s.charAt(i) && (s.charAt(i) == '.'
                            || (s.charAt(i) >= '0' && s.charAt(i) <= '9')
                            || (s.charAt(i) >= 'a' && s.charAt(i) <= 'z')
                            || (s.charAt(i) >= 'A' && s.charAt(i) <= 'Z')))) {
                        dp[i + 1][j + 1] = dp[i][j];
                    }
                    // else {
                    //     dp[i+1][j+1] = false;
                    // }
                }
            }
            System.out.println(dp[sLen][pLen]);
        }
    }
}
